import 'package:flutter/material.dart';
import '../../tools/keepAliveWrapper.dart';

class Homepage extends StatefulWidget {
  const Homepage({super.key});

  @override
  State<Homepage> createState() => _HomepageState();
}

class _HomepageState extends State<Homepage>
    with SingleTickerProviderStateMixin {
  late TabController _tabController;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _tabController = TabController(length: 8, vsync: this);
    // 监听_tabController的改变事件
    _tabController.addListener(() {
      // 获取两次，使用以下方法就不会了
      if (_tabController.animation!.value == _tabController.index) {
        // 请求数据
        print(_tabController.index); // 获取点击或滑动页面的索引值
      }
    });
  }
  // 组件销毁的时候触发
  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    // 销毁_tabController
    _tabController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: PreferredSize(
        preferredSize: Size.fromHeight(40),
        child: AppBar(
          title: SizedBox(
            height: 30,
            child: TabBar(
              isScrollable: true,
              dividerHeight: 0.5,
              indicatorSize: TabBarIndicatorSize.label,
              labelColor: Colors.red,
              indicatorColor: Colors.red,
              labelStyle: TextStyle(
                fontSize: 14,
                fontWeight: FontWeight.bold,
              ),
              unselectedLabelStyle: TextStyle(
                fontWeight: FontWeight.normal,
              ),
              controller: _tabController,
              tabs: [
                Tab(child: Text("关注")),
                Tab(child: Text("热门")),
                Tab(child: Text("视频")),
                Tab(child: Text("娱乐")),
                Tab(child: Text("篮球")),
                Tab(child: Text("深圳")),
                Tab(child: Text("成都")),
                Tab(child: Text("其他")),
              ],
            ),
          ),
          // centerTitle: true,
        ),
      ),
      body: TabBarView(
        controller: _tabController,
        children: [
          // 自定义缓存组件
          KeepAliveWrapper(
            child: ListView(
              children: [
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表1")),
                ListTile(title: Text("我是关注列表1")),
                ListTile(title: Text("我是关注列表1")),
                ListTile(title: Text("我是关注列表1")),
                ListTile(title: Text("我是关注列表1")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表2")),
                ListTile(title: Text("我是关注列表4")),
              ],
            ),
          ),
          Text("我是热门"),
          Text("我是视频"),
          Text("我是娱乐"),
          Text("我是篮球"),
          Text("我是深圳"),
          Text("我是成都"),
          Text("我是其他"),
        ],
      ),
    );
  }
}
